
package com.insigma.business.qrcode.welfare._provider;



import com.insigma.business.qrcode.common.template.BasePagingResponse;
import com.insigma.business.qrcode.common.vo.BaseDeleteRequest;
import com.insigma.business.qrcode.common.vo.BaseResponse;
import com.insigma.business.qrcode.soldier.dto.SimpleApiRequest;
import com.insigma.business.qrcode.soldier.request.BaseGetRequest;
import com.insigma.business.qrcode.welfare.dto.HospitalStatsDTO;
import com.insigma.business.qrcode.welfare.dto.ScanCodeRecordDTO;
import com.insigma.business.qrcode.welfare.dto.ScenicSpotStatsDTO;
import com.insigma.business.qrcode.welfare.request.ScanCodeRecordInsertRequest;
import com.insigma.business.qrcode.welfare.request.ScanCodeRecordSearchRequest;
import com.insigma.business.qrcode.welfare.request.ScanCodeRecordUpdateRequest;

import java.util.List;


public interface ScanCodeRecordProvider {

    
    BasePagingResponse<List<ScanCodeRecordDTO>> searchScanCodeRecord(final ScanCodeRecordSearchRequest scanCodeRecordSearchRequest);

    
    BasePagingResponse<List<ScanCodeRecordDTO>> searchHospitalRecord(final ScanCodeRecordSearchRequest scanCodeRecordSearchRequest);

    
    BasePagingResponse<List<ScanCodeRecordDTO>> searchMyRecord(final ScanCodeRecordSearchRequest scanCodeRecordSearchRequest);

   
    BaseResponse<ScanCodeRecordDTO> getScanCodeRecord(final BaseGetRequest baseGetRequest);

    
    BaseResponse<ScenicSpotStatsDTO> getScenicSpotStats(SimpleApiRequest request);

    
    BaseResponse<HospitalStatsDTO> getHospitalStats(SimpleApiRequest request);

    
    BaseResponse<String> insertScanCodeRecord(final ScanCodeRecordInsertRequest scanCodeRecordInsertRequest);

    
    BaseResponse<Integer> updateScanCodeRecord(final ScanCodeRecordUpdateRequest scanCodeRecordUpdateRequest);

    
    BaseResponse<Integer> deleteScanCodeRecord(final BaseDeleteRequest deleteRequest);

    
    BaseResponse<Integer> addWestLakeRecord(String startTime, String endTime);

}
